import 'package:flutter/material.dart';
import 'main.dart';

void main() async {
  // 确保Flutter绑定初始化
  // 您提出了一个很好的问题！虽然 main.dart 中确实已经调用了 WidgetsFlutterBinding.ensureInitialized() ，但这并不意味着 main_ehr.dart 中就不需要调用它了。这是因为：
  // ## Flutter入口点机制
  // 1. 独立的入口点 ：每个Flutter应用的入口文件（比如 main_ehr.dart ）都是一个独立的执行入口。当您使用 flutter run -t lib/main_ehr.dart 命令时，Flutter直接执行这个文件作为应用的起点，而不会先执行 main.dart 。
  // 2. 导入与执行 ：虽然 main_ehr.dart 导入了 main.dart 并调用了其中的 mainEhrApp() 函数，但 main.dart 中的顶级代码（包括 WidgetsFlutterBinding.ensureInitialized() ）并不会在导入时自动执行。
  // 3. 执行顺序 ：
  //
  // - 当运行 main_ehr.dart 时，首先执行的是 main_ehr.dart 中的 main() 函数
  // - 然后 main_ehr.dart 调用 mainEhrApp() 函数
  // - mainEhrApp() 函数再调用 main.dart 中的 main(flavor: 'ehr')
  // - 此时才会执行 main.dart 中的 WidgetsFlutterBinding.ensureInitialized()
  // ## 为什么需要在两处都初始化
  // 在 main_ehr.dart 中添加 WidgetsFlutterBinding.ensureInitialized() 是一种防御性编程的做法，确保无论从哪个入口点启动应用，Flutter绑定都能被正确初始化。这样做的好处是：
  //
  // 1. 确保安全 ：保证Flutter引擎在任何异步操作之前都已正确初始化
  // 2. 避免时序问题 ：防止在 main.dart 中的初始化执行之前就有异步操作发生
  // 3. 增强独立性 ：使每个入口文件都能独立正确运行，不依赖于其他文件中的初始化逻辑
  WidgetsFlutterBinding.ensureInitialized();
  
  // 调用EHR应用入口
  mainEhrApp();
}